#ifndef SHAPENODE_H
#define SHAPENODE_H

#include "SceneGraphNode.h"
#include <cstdlib>
//#include "../../collisions/Vector3D.h"
/**
 * Abstract base class for shapes
 */

namespace scenegraph{

	class ShapeNode : public SceneGraphNode 
	{
	protected:
		int slices, stacks;
		int r, g, b, alpha;

	public:
		ShapeNode();
		ShapeNode(int ARGBvalues);
		ShapeNode(int rVal, int gVal, int bVal, int alpha);
		ShapeNode(int colors[3], int alpha);
		virtual ~ShapeNode();
		// Leave Node; 
		// call from child; ensure consistent use of tranformation 
		virtual void draw() = 0;
		void setColor(int ARGBvalues);
		void setColor(int rVal, int gVal, int bVal, int alpha);
		void setColor(int colors[3], int alpha = 0);
		void drawFinish();
		//void operator+=(const Vector3D translation);
	};

	/*ShapeNode::operator +=(const Vector3D translation)
	{
		setTranslation(
	}*/

}
#endif
